2024. 04. 19., 경북 포항시 남구 청암로 77.

일회용품이 되고 싶어

시험 공부를 핑계로 일주일을 더 놀았더니 이젠 정말로 면목이 없었습니다. 말할 수 있는게 없었어요. 랩미팅에서 보고할 내용이 거의 없었습니다. 그런데 다른 분들도 시험 기간 동안 바쁘셨나봐요. 다들 보고할 내용들이 적어서 다행히 내가 눈에 많이 띄진 않았습니다.

지난 주말에 교수님께 슬랙으로 메시지가 왔습니다. 이제는 정말로 팀에 올릴 실험 결과가 필요하다는 내용이었어요. 2주 간 아무것도 하지 않은 업보를 청산해야 하는 시점이 도달한 것이지요. 나는 이에 대해 수요일 중으로 데이터를 보고할 수 있게 준비하겠다고 스스로에게 폭탄 목걸이를 채웠습니다. 사실 자신은 없었어요. 3일 안에 모델 재학습부터 평가 및 분석까지 해내야 했거든요.

나는 기존 코드베이스를 비트는 것보다 처음부터 새로 작성하는 것이 시간이 적게 든다고 믿습니다. 실제로 그랬던 적이 많기도 했고요. 또, 기존 코드들이 너무 흩어져있어서 한번 모아야 할 필요성도 느끼긴 했습니다. 그래서 LLM 관련 실험들을 모노레포화 할 겸 hugged라는 이름의 리포지토리를 새로 생성해서 작업을 시작했습니다. Hugging Face의 역으로 접근해서 만든 이름인데 마음에 쏙 들어요.

Hugging Face의 코드들을 잘 믿지 않기도 했고 트레이닝 과정에서 커스터마이즈할 부분이 많을 줄 알고 torch로 밑바닥부터 프레임워크를 짜서 쓰고 있었습니다. 하지만 지금은 시간이 없기도 했고 커스터마이즈할 구석이 적다는 것을 깨달아서 그냥 Hugging Face의 Trainer를 쓰기로 결심했습니다. Hugging Face의 코드를 이젠 믿겠다고 선언하는 것은 아닙니다. 프레임워크의 난잡함이 정신 나갔어요.

새로 작성한 트레이닝 파이프라인 위에서 파인 튜닝을 돌려두고 기숙사로 향하는 길에 이동하를 만났습니다. 갑자기 러닝을 하재요. 정확히는 내가 체육관 트랙에서 뛰는 동안 자기는 헬스를 하겠다는 뜻이었습니다. 그럴거면 안가겠다고 고집부렸더니 같이 러닝을 가주었습니다.

체력이 정말 많이 늘어난 것을 깨달았어요. 평소대로 뛰었는데 동하와 거리가 너무 벌어졌고 다시 맞춰서 뛰어보니 페이스는 6분이었습니다. 러닝 처음할 때 페이스와 비슷한 수준인데 이게 이렇게 느린 속도였다니. 나의 성장에서 뿌듯함을 느낄 수 있었습니다.

2024. 04. 15., 경북 포항시 남구 청암로 77.

러닝이 끝나고는 셋이서 맥주를 한 캔 했습니다. 콜로세움에서 감자튀김을 샀고 나는 카발란 하이볼을 샀어요. 카발란 하이볼 캔이 학교 편의점에 들어오기 시작해서 기분이 좋습니다. 함께 술을 마시면서는 넷플릭스에서 삼체를 봤습니다. 이동하가 이미 스토리를 알고 있는 상태였어서 스포일러를 당할까봐 겁을 냈습니다.

수업 시간 내내 코딩만 했습니다. 당장 내일까지 데이터를 뽑아야하는데 별 수가 없더라고요. 트레이닝 결과만 확인해볼 겸 모델로 생성만 몇 개 해보려고 했습니다. 그런데 결과가 이상하더라고요. 도대체 왜지 살펴보니 쓰고 있는 모델의 tokenizer 설정이 이상하게 잡혀 있었습니다. eos 토큰과 그에 상응하는 토큰 아이디가 다르게 잡혀있더라고요. 교정하고 다시 트레이닝을 돌리자 원하는 결과가 나왔습니다.

모델을 평가하기 위해서 우리 팀의 다른 프로젝트를 이용하려고 했습니다. 리포지토리를 클론하고 VSC로 열었다가 당황했어요. 파이썬 가상환경 디렉토리를 포함한 별의 별 파일들이 모두 깃에 트래킹되고 있었습니다. 당황을 안은 채로 바로 PR을 올렸습니다.

2024. 04. 16., 경북 포항시 남구 청암로 77.

동기 분과 같은 수업을 듣는데 강의실을 나오는 길에 마주쳐서 함께 점심을 먹었습니다. 체인지업 그라운드에 가든이라고 식당이 생겼는데 가보자고 하더라고요. 한번도 가보지 않아서 방문해봤습니다. AI가 조리한다고 적혀있던데 잘 모르겠어요. 제육 정식을 먹었는데 맛은 나쁘지 않았습니다.

식사하면서 내일까지 데이터를 뽑아야해서 바쁘다고 이야기했더니 같이 밤 새자는 대답이 돌아왔어요. 동기 분도 바쁘다고 하시더라고요.

연구실로 출근해서 정말 열심히 코딩했습니다. 오전에 확인해본 프로젝트를 적용할 수 없을 것 같아서 오늘 안에 끝낸다는 마음가짐으로 벤치마크 코드를 새로 작성했어요. 어느 정도 코드가 쌓인 이후에는 pytest로 몇몇 크리티컬한 함수들에 대해 유닛 테스트도 구성했습니다. 평소에는 절대 유닛 테스트를 작성하지 않았는데 오늘만큼은 일을 빠르게 끝내기 위해 작성해보았습니다. 테스트를 작성하면 실수를 줄여서 이상한 곳에서 디버깅하는 시간을 줄일 수 있거든요. 덕분에 실수를 많이 고칠 수 있었습니다.

2024. 04. 16., 경북 포항시 남구 청암로 77.

유닛 테스트를 모두 통과 하자마자 동기 분이 저녁을 같이 먹자고 제안해주셨어요. 리스트 식당은 저녁이 5000원이라 좋습니다. 제육이 나왔는데 오늘 점심에 먹은 10000원짜리와 구성이 비슷해서 괜시리 돈이 아까웠습니다.

밥을 먹고 돌아와서는 코드를 돌려보면서 디버깅을 했습니다. 유닛 테스트를 추가하고 정적으로 타입 힌트를 꼼꼼히 넣어줘도 돌려보면 상상하지 못한 버그들이 쏟아져나오는 것 같습니다. 그래도 정적인 작업을 잘 해둬서 그런지 파이프라인이 금방 동작했고 데이터를 금방 뽑아볼 수 있었습니다.

리포트는 주피터 노트북으로 작성했어요. 노트북을 정말 싫어하지만 그래프 플롯 넣으면서 보고서 형식으로 만들 때에는 노트북만한 것이 없는 것 같습니다. 이런 용도로는 쓰기 괜찮은 것 같아요.

2024. 04. 16., 경북 포항시 남구 청암로 77.

모든 작업을 끝내고 보고서를 올렸을 때 시간은 밤 10시 반이었습니다. 어제 모노레포로 만들자고 결심하길 정말 잘했다는 생각이 들었습니다. 그렇게 하지 않았다면 작업이 정말 많이 늘어졌을 것 같아요.

당장에 보여줄 수 있는 형태의 리포트가 생겨서 오늘은 여유롭게 작업할 수 있었습니다. 급하게 짜느라 중구난방이 되어버린 디렉토리 구조를 개편했어요. 시간이 소요되더라도 이런 리팩토링 작업을 중간 중간에 해주지 않으면 후에 또 쓸 수 없는 코드 베이스가 되어버린다고 믿습니다. 특히 모노레포인 경우에 그런 특성이 두드러져요. 그리고 급하게 작성한다고 리포트 용도로 쓴 노트북에 너무 많은 코드가 노출되는 것 같아서 함수로 감싼 뒤에 리포트가 더 깔끔해 보일 수 있도록 수정하였습니다.

리팩토링 작업을 하면 뭔가 한 것 같진 않은데 시간은 정말 빨리 갑니다. 점심 때에 작업을 시작했는데 저녁을 먹을 때가 되어서야 작업을 모두 마칠 수 있었습니다.

2024. 04. 17., 경북 포항시 남구 청암로 77.

리스트 식당에서 저녁을 먹었어요. 리스트 식당이 점심에는 9000원 가까이 해서 부담스러운데 저녁에는 5000원에 학식보다 좋은 정식을 먹을 수 있기도 하고 연구실 코앞이라 좋은 것 같습니다. 앞으로 저녁은 리스트 식당에서 많이 먹을 것 같아요.

2024. 04. 17., 경북 포항시 남구.

태우와 함께 러닝을 했습니다. 태우가 5.5km를 뛰자고 제안하길래 그럴거면 6km를 뛰자고 제안했어요. 처음부터 속도를 조절했음에도 후반부에 너무 힘들었습니다. 정말 힘들었지만 꾸역꾸역 거리를 채웠어요. 오래간만에 정말 힘든 러닝이었습니다.

연구실 사람들에게 시험이 끝나면 술 한번 같이 마시자고 이야기를 했었습니다. 오늘은 정해야겠다는 생각이 들었어요. 외향력을 끌어모아 술자리 일정을 잡아보자고 카톡을 남겼습니다.

금, 토, 일요일에 시간이 되지 않아서 술자리가 오늘로 정해졌습니다. 그렇게 나는 또 하나의 폭탄 목걸이를 매게 되었어요. 내일 세미나가 제 담당이었는데 월요일부터 수요일까지 보고서 작업을 한다고 세미나를 준비하지 못했거든요. 저녁이 되기 전까지 5시간 안에 세미나를 준비해야했기에 집중해서 준비했습니다.

이전에도 언급했지만 세미나 슬라이드를 만드는데 Marp를 이용하고 있어요. 그렇게 무거운 프레임워크가 아님에도 이전 맥북을 쓸 때에는 많이 버벅였습니다. 새 맥북에서는 다행히 버벅거리지 않아서 더 수월하게 장표를 만들 수 있었습니다. 3시간 만에 세미나 준비를 마칠 수 있었습니다.

2024. 04. 18., 경북 포항시 남구 효성로64번길 5 1층.

6시 반에 연구실 사람들과 함께 토산전집으로 출발했어요. 세미나 준비를 일찍 끝낸 덕분에 여러 선택지를 찾아볼 수 있었고 토산전집으로 결정되었습니다. 나는 전을 정말 좋아하는데 특성상 부대껴서 토산전집에 자주 가진 못해요. 그럼에도 한 달 전부터 가고 싶었습니다. 오늘 연구실 사람들과 가게 되어서 기분이 좋았어요.

확실히 술이 들어가니까 말이 많이 풀리는 것 같습니다. 평소에 식사하면서 대화할 때보다 더 재밌고 활발하게 대화를 할 수 있었습니다.

2차로는 펀앤펀에 갔어요. 저번주에 내가 사고친 광경을 기억하는 사람들이 없어서 다행이었습니다.

알코올 덕분에 논문 내용을 약간 잃어버렸지만 다행히도 세미나를 잘 마칠 수 있었습니다. 이번 세미나를 준비하면서 이 논문 내용을 지금 하는 프로젝트에 잘 적용할 수 있을 것 같다는 생각이 들어서 교수님께 짧은 미팅을 요청드렸는데, 교수님도 오늘 세미나를 들으면서 같은 생각을 하신 것 같습니다. 우리 프로젝트에 쓰기에 알맞은 메서드라고 생각하셨어요. 그래서 팀 슬랙에도 논문을 공유했고, 다음주에는 자세한 계획을 올릴 수 있도록 해보겠다고 또 폭탄 목걸이를 스스로 맸습니다.

동기 분이 세미나 내용 관련해서 몇 가지 질문을 하셨고 설명하다보니 학식 시간이 지나버렸습니다. 점심으로 뭘 먹을까 고민하다가 정말 오래간만에 퀴즈노스를 먹어보자는 생각이 들었어요. 학교에 퀴즈노스가 생겼을 때 한번 가보고 그 이후로 가보지 않았기에 오래간만에 식사로 괜찮을 것 같았습니다. 두가지를 깨달았어요. 미디엄 사이즈도 크다. 채소가 더 많이 들어가면 좋겠다.

2024. 04. 18., 경북 포항시 남구 효자동길10번길 18 1층 101호. 2024. 04. 18., 경북 포항시 남구 효자동길10번길 18 1층 101호.

병원을 갔다가 미용실 예약까지 시간이 많이 비어서 커들러에 들렀습니다. 책을 읽으려고 했는데 어쩌다보니 사장님과 내내 대화를 즐기게 되었어요. 고양이 이야기로 시작했는데 정신 차려보니 가게 옆에 있는 고양이를 소개받고 있었습니다. 이야기가 재밌었는지 사장님이 바닐라 사브레를 서비스로 챙겨주셨어요.

2024. 04. 18., 경북 포항시 남구 청암로 77.

다운펌을 살면서 처음 해봤습니다. 옆머리 뜨는 것에 대해서 별로 생각해본적이 없는데 어느 순간부터 신경이 쓰이더라고요. 머리를 헹구고 미용사 분이 저에게 잘 됐다고 말하는데 나는 흠칫했습니다. 미용실에서 시술 잘 됐다고 말하면 꼭 잘 안됐던 적이 많아서요.

저녁에는 친구를 만나서 술을 마셨습니다. 또 사고 쳤어요.

네이버 블로그를 언젠가는 벗어나야지 생각하면서 도메인을 사둔 것이 있습니다. 시험도 리포트 제출도 끝난 지금이 작업하기에 적기라고 생각해서 이것저것 작업을 시작했습니다. Astro로 블로그 베이스를 잡고 글을 하나씩 옮기기 시작했습니다. 블로그 베이스 코드를 쓰는데는 얼마 걸리지 않았는데 글을 옮기는데 시간이 너무 오래 걸리더라고요. 원본 사진을 찾아서 하나씩 마크다운 형식으로 넣는데 너무 많은 시간이 걸렸습니다.

그래서 방법이 없을까 찾아보다가 네이버 블로그의 CDN에서 원본 이미지를 이용할 수 있음을 깨닫고 크롤러를 작성하기 시작했습니다. 네이버 블로그 포스트에서 지원하는 서식 스타일이 적어서 마크다운으로 옮기기에도 큰 어려움이 없었습니다. 네이버 블로그를 마크다운으로 옮기고 싶어하는 수요가 꽤 있을 것 같아서 코드를 정리해서 공개해두었어요. (naver-blog.md)

딥러닝 팀 프로젝트에 진척이 필요한 것 같아서 미팅을 요청했고 도서관에서 팀원들을 만났어요. 프로포절을 작성할 때 실험을 자세히 설계하지 않아서 실험을 더 명확하게 설계했습니다. 베이스 모델도 함께 작성했어요.

미팅이 끝나고는 블로그 작업에 다시 집중했습니다. 이미지 태그로 네이버 CDN에 있는 사진을 바로 이용할 심산으로 이미지를 저장하는 기능은 따로 만들지 않았는데, Astro의 Image 컴포넌트로 이미지를 가져오려니 차단당하더라고요. 그래서 이미지까지 다운로드하는 기능을 급하게 만들어서 작업을 마무리했습니다.

이미 죽은 사람 아냐, 사실

사람들이 일회용품으로 여겨질 때가 있습니다. 몇 번의 효용을 이용하고 나면 죽어버리는 관계에 싫증을 느껴요. 그런 죽음이 존재하지 않는 관계를 지속하고 싶습니다.

그럼에도 나는 일회용품이 되고 싶습니다. 한 번이라도 효용이 있는 사람이 되고 싶습니다.


권민재

WWW 사이버디지탈 COM